package cn.stylefeng.guns.modular.yingbao.service;

import cn.hutool.core.lang.copier.SrcToDestCopier;
import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.modular.yingbao.entity.SysSell;
import cn.stylefeng.guns.modular.yingbao.entity.SysSellPay;
import cn.stylefeng.guns.modular.yingbao.model.params.SysSellParam;
import cn.stylefeng.guns.modular.yingbao.model.result.SysSellResult;
import cn.stylefeng.roses.core.reqres.response.ResponseData;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 挂售 服务类
 * </p>
 *
 * @author jj
 * @since 2019-12-11
 */
public interface SysSellService extends IService<SysSell> {

    /**
     * 新增
     *
     * @author jj
     * @Date 2019-12-11
     */
    ResponseData add(SysSellParam param);

    /**
     * @description :手机端挂售
     * @param sysSellParam
     * @date : 2019/12/11 13:38
     * @author : jj
     */
    ResponseData appAddItem(SysSellParam sysSellParam);
    /**
     * 删除
     *
     * @author jj
     * @Date 2019-12-11
     */
    void delete(SysSellParam param);

    /**
     * 更新
     *
     * @author jj
     * @Date 2019-12-11
     */
    void update(SysSellParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author jj
     * @Date 2019-12-11
     */
    SysSellResult findBySpec(SysSellParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author jj
     * @Date 2019-12-11
     */
    List<SysSellResult> findListBySpec(SysSellParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author jj
     * @Date 2019-12-11
     */
     LayuiPageInfo findPageBySpec(SysSellParam param);

    ResponseData editData(String id, Integer type, String remark);

    ResponseData lookcnt(int pageNo,int pageSize,Integer contractType);

    ResponseData appBuy(Long userid, String ordinal);

    ResponseData appContractDetail(Long userid, String ordinal);

    ResponseData appPay(SysSell sysSell);

    ResponseData appAffirm(String ordinal,Long userid);

    ResponseData appSellCheckPayment(Long userid, String stuats);

    ResponseData appBuyCheckPayment(Long userid, String stuats);

    ResponseData appComplain(String ordinal, Long userid,String phone,String title,String complainDetails);

    ResponseData platformApproval(String ordinal, Integer type, String remark);

    ResponseData unshelve(Long id);

    ResponseData refuse(String ordinal, Long userid);
}
